package br.com.marcelo.reservasis.client.services.reservaestadia;

import br.com.aroeirasoftware.gwtcomponents.client.query.ASQuery;
import br.com.aroeirasoftware.gwtcomponents.client.query.ASQueryResult;
import br.com.marcelo.reservasis.domain.model.Apartamento;
import br.com.marcelo.reservasis.domain.model.ReservaEstadia;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

/**
 *
 * @author Marcelo Rodrigues
 */
@RemoteServiceRelativePath("ReservaEstadiaUIService.rpc")
public interface ReservaEstadiaUIService extends RemoteService {

    public Integer salvar(ReservaEstadia arg0) throws RuntimeException;

    public void atualizar(ReservaEstadia arg0) throws RuntimeException;

    public void excluir(ReservaEstadia arg0) throws RuntimeException;

    public ReservaEstadia getPorId(Integer arg0) throws RuntimeException;

    public Apartamento getApartamentoPorId(Integer arg0) throws RuntimeException;

    public ASQueryResult<ReservaEstadia> getPorConsulta(ASQuery arg0) throws RuntimeException;

    public ASQueryResult<Apartamento> getApartamentoPorConsulta(ASQuery arg0) throws RuntimeException;

    public static class Async {

        private static final ReservaEstadiaUIServiceAsync INSTANCE = GWT.create(ReservaEstadiaUIService.class);

        public static ReservaEstadiaUIServiceAsync getInstance() {
            return INSTANCE;
        }
    }
}
